import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

public class cardTest {
    public static void main(String[] args) {

        List<Card> 一副牌 = new ArrayList<>();
        String[] 所有的花色 = { "", "", "", "" };
        // 遍历所有的花色
        for (String suit : 所有的花色) {
            for (int rank = 1; rank <= 13; rank++) {
                // 定义一张牌
                Card card = new Card(suit, rank);   // 执行 4 * 13 = 52 次
                // 把牌添加到 这副牌中
                一副牌.add(card);
            }
        }

        // 打印
        System.out.println(一副牌);    // 一副牌.toString()

        Collections.shuffle(一副牌);

        // 打印，洗牌后
        System.out.println(一副牌);    // 一副牌.toString()   牌堆

        // 进行发牌的操作
        List<Card> playerA = new ArrayList<>(); // 空（empty）的
        List<Card> playerB = new ArrayList<>(); // 空（empty）的
        List<Card> playerC = new ArrayList<>(); // 空（empty）的
        List<Card> playerD = new ArrayList<>(); // 空（empty）的

        System.out.println("发牌后，牌堆的牌数：" + 一副牌.size());
        for (int i = 0; i < 5; i++) {

            Card card = 一副牌.remove(0);  // 删除 [0] 下标的牌，就是头删
            // 发给对应的玩家 A
            playerA.add(card);  // 这里头插、尾插都可以

            // 发牌给 B
            card = 一副牌.remove(0);
            playerB.add(card);

            // C
            card = 一副牌.remove(0);
            playerC.add(card);

            // D
            card = 一副牌.remove(0);
            playerD.add(card);
        }
        System.out.println("发牌前，牌堆的牌数：" + 一副牌.size());

        // 分别打印每个人手中的牌
        System.out.println(playerA);
        System.out.println(playerB);
        System.out.println(playerC);
        System.out.println(playerD);


        //使用addAll方法
        一副牌.addAll(playerA);
        playerA.clear();
        一副牌.addAll(playerA);
        playerB.clear();
        一副牌.addAll(playerA);
        playerC.clear();
        一副牌.addAll(playerA);
        playerD.clear();

        Collections.shuffle(一副牌);
        System.out.println(playerA);
        System.out.println(playerB);
        System.out.println(playerC);
        System.out.println(playerD);
        System.out.println(一副牌);
    }
}
